package com.agritech.smartfarming.model;

import lombok.Data;

/**
 * 用户类，表示系统用户
 */
@Data
public class User {
    private String userId;      // 用户ID
    private String username;    // 用户名
    private String password;    // 密码（实际应用中应加密存储）
    private UserRole role;      // 用户角色
    private boolean active;     // 是否激活
    private String email;       // 电子邮件
    private String phone;       // 电话号码
    
    public User(String userId, String username, String password, UserRole role) {
        this.userId = userId;
        this.username = username;
        this.password = password;
        this.role = role;
        this.active = true;
    }
    
    /**
     * 检查用户是否有权执行特定操作
     * @param requiredLevel 操作所需的权限级别
     * @return 是否有权限
     * 代理模式
     */
    public boolean hasPermission(int requiredLevel) {
        return active && role.getPermissionLevel() >= requiredLevel;
    }
    
    /**
     * 获取用户信息
     */
    public String getUserInfo() {
        return String.format("用户: %s (ID: %s)\n角色: %s\n状态: %s\n邮箱: %s\n电话: %s",
                username, userId, role, active ? "激活" : "禁用", email, phone);
    }
} 